package com.naiterui.ehp.bs.doctor.vo;

import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.google.common.collect.Lists;

import lombok.Data;

import io.swagger.annotations.ApiModelProperty;

/**
 * 患者信息
 */
@Data
public class PatientVo implements Serializable {

    /**
     * 扫码来源APP：<code>SCAN_CODE_SOURCE_APP</code>
     */
    public static final int SCAN_CODE_SOURCE_APP = 1;
    /**
     * 扫码来源PC：<code>SCAN_CODE_SOURCE_PC</code>
     */
    public static final int SCAN_CODE_SOURCE_PC = 2;

    /**
     * 关注来源:推荐活动
     */
    public static final int SCAN_CODE_SOURCE_CONSULT_ACTIVITY = 3;
    /**
     * 关注来源:线上诊室
     */
    public static final int SCAN_CODE_SOURCE_CONSULT_ROOM = 4;
    /**
     * 关注状态：关注
     */
    public static final int SUBSCRIBE_STATUS_SUBSCRIBE = 0;
    /**
     * 关注状态：取消关注
     */
    public static final int SUBSCRIBE_STATUS_UNSUBSCRIBE = 1;
    private static final long serialVersionUID = 7777894219108788289L;
    private Long id;

    @ApiModelProperty(value = "患者头像")
    private String patientIcon;

    @ApiModelProperty(value = "患者姓名或昵称")
    private String name;

    @ApiModelProperty(value = "患者性别：0.女  1.男")
    private Integer gender;

    @ApiModelProperty(value = "患者年龄")
    private Integer age;

    @ApiModelProperty(value = "创建时间")
    private Long createTime;
    // 备注名
    @ApiModelProperty(value = "患者备注名")
    private String remarkName;
    /**
     * abc分组名，不返回前端：<code>abcName</code>
     */
    @JsonIgnore
    private String abcName;
    /**
     * 是否屏蔽患者 true：评估 false：未屏蔽
     */
    @ApiModelProperty(value = "是否屏蔽患者 true：评估 false：未屏蔽")
    private boolean shield;

    /**
     * 患者abc分组值：<code>abcKey</code>
     */
    @JsonInclude(Include.NON_NULL)
    private String abcKey;

    /**
     * 城市名称：<code>cityName</code>
     */
    @ApiModelProperty(value = "城市名称")
    @JsonInclude(Include.NON_NULL)
    private String cityName;

    /**
     * 扫码来源 ：<code>source</code>
     */
    @ApiModelProperty(value = "扫码来源")
    private Integer source;

    /**
     * 图文咨询价格:<code>consultCost</code>
     */
    @ApiModelProperty(value = "图文咨询价格")
    private Integer consultCost;

    @ApiModelProperty(value = "取消关注 0:未取消 1：取消")
    private Integer subscribe;

    @ApiModelProperty(value = "取消关注描述")
    private String subscribeMsg = "患者已取消关注公众号，无法接收消息。";

    @ApiModelProperty(value = "诊断")
    private List<String> diagnosis = Lists.newArrayList();

    @ApiModelProperty(value = "我的分组")
    private List<String> myGroup = Lists.newArrayList();

}
